Satellite positioning systems, such as the Global Positioning System (GPS) or its European counterpart, Galileo, can determine the position of the user anywhere on Earth with accuracies that range from tens of meters using autonomous low-cost receivers to the centimeter level using survey-grade receivers which operate in conjunction with a base station (differential operation). In both of these modes of operation, the receiver must acquire and track the signals from a plurality of satellites in order to make measurements of the distance from the receiver to each of the satellites in view. The ability of the receiver to perform these tasks is often limited by the presence of buildings, mountains, foliage, or other obstacles that block or severely attenuate the received satellite signals. In addition, a considerable length of time may be required to search for and acquire the satellite signals, read the navigational data contained in them, and make the measurements needed to establish the position of the user.
These limitations are particularly serious when the user needs to establish his or her position in an emergency situation. In a typical emergency the user needs immediate assistance from other parties, such as paramedics, police officers, or firemen, who need accurate information as to the location of the emergency. Time is of the essence in these situations (for example, a heart attack). Standard satellite navigational receivers usually take too much time to perform the operations needed to obtain a position of the user, which might be as much as several minutes or more. Additionally, it is often the case that the satellite signals at the location of the emergency are too weak to be usable by a standalone receiver. This is not at all uncommon inside a building whose walls severely attenuate the electromagnetic radiation from the satellites.
In recent years considerable effort has been made to overcome the limitations of weak signal reception and to significantly reduce the time from receiver turn-on to the determination of user position (time to first fix), so that quick and reliable emergency location becomes possible. The primary method for achieving this goal is to use what is known as assisted positioning, in which a base station (the server), located in a good satellite signal reception location, collects data from the satellites and transmits it and other data to the user (the rover) via an independent communication link between server and rover.
To simplify and make more concrete the background of the present invention, as well as the description of the present invention itself, it is assumed from this point on that the positioning system uses GPS satellites. However, it is to be understood that the concepts would also apply to other satellite positioning systems.
Principles of Unassisted Positioning
In order to best understand the principles of assisted positioning, a review of standard non-assisted GPS positioning is helpful. When a typical stand-alone GPS receiver is first turned on, a sequence of operations must ensue before information in the GPS satellite signals can be and used to provide a position fix. In the order of execution, these operations are as follows:
1. Use stored almanac data to determine which satellites are visible to the antenna.
2. Determine the approximate Doppler of each visible satellite.
3. Search for each satellite signal both in frequency and C/A code phase.
4. Detect the presence of each signal and confirm the detection.
5. Lock onto and track the C/A code from each satellite.
6. Lock onto and track the carrier phase from each satellite.
7. Perform navigation data bit synchronization.
8. Demodulate the navigation data bit stream to obtain ephemeris and time information.
9. Measure the time of arrival of a specific identifiable point of each satellite signal received waveform according to the receiver clock.
10. Use the time information in Step 8 to determine the GPS time of transmission of the same point on the waveform described in Step 9.
11. Compute the pseudorange to each satellite by subtracting the GPS time of transmission (Step 10) from the time of arrival (Step 9) and multiplying this difference by the speed of light.
12. Use the ephemeris data for each satellite (Step 8) to determine the position of the satellite at the GPS time of transmission (Step 10).
13. Use the pseudorange to each satellite (Step 11) and the satellite positions (Step 12) to compute the position of the user's receiver and very accurate time.
In a standard GPS receiver the above sequence of operations can be quite time consuming; In particular, the search for satellites in Step 3 may require several minutes or even more, depending on a number of conditions. At the start of the search the Doppler shift of the signal from each satellite may not be accurately known, so time must be taken to explore a window of frequencies in order to find a signal. This window must be wide enough to encompass the frequency uncertainty of the signal. Before the first satellite is acquired, a major source of this uncertainty is the frequency uncertainty in the reference oscillator of the user's receiver, which might be on the order of 1 part per million, or ±1575 Hz at the GPS L1 carrier frequency of 1575.42 MHz. A second source of frequency uncertainty occurs when the receiver does not have recent (no more than 2 hours old) ephemeris data, or does not have sufficiently accurate approximate a-priori knowledge of its position to know what signal Doppler shift to expect (the Doppler shift can change by approximately 1 Hz/km worst case).
The average search time in order to acquire a sufficient number of satellite signals for positioning can further be lengthened if the signals are weak, as is commonly the case when the receiver is inside a building or surrounded by obstructions which block the signals. Weak signals must be averaged over a longer time interval in order to raise them far enough above the noise level to be reliably detected. Thus, the average search time in Step 3 above can be significantly longer than for unobstructed signals.
In addition to the possibility of a lengthy search to acquire the satellites, the demodulation of the navigation data stream from each satellite to obtain ephemeris and time information in Step 8 also can take a considerable length of time. Ephemeris data from each satellite is used to determine the position of that satellite at the time of signal transmission obtained in Step 10. The ephemeris data is basically a formula, or more accurately, a parameterized algorithm, into which the transmission time can be substituted in order to calculate the satellite position at that time. In standard (non-assisted) GPS positioning, the ephemeris data is obtained from the 50 bit/second GPS navigation data received directly from the satellite by the user. The navigation data stream consists of sequentially transmitted 1500-bit frames of duration 30 seconds (1500 bits÷50 bits/sec), each of which contains five 300-bit subframes. The first three subframes consist of time and ephemeris data. The ephemeris data is repeated at the frame repetition rate, except for occasional updates. Thus, the reception of a complete sample of ephemeris data from a single satellite may take as long as 30 seconds, depending on when the user's receiver begins to look for such data within a received frame.
A more serious problem in extracting the time and ephemeris data from the navigation message occurs when the GPS signal is too weak to permit reliable demodulation of the navigation message data bits. This problem manifests itself at a C/No of approximately 25 dB-Hz. In urban canyons and inside buildings the C/No can easily fall below this value, rendering the user's standard GPS receiver inoperative because it can no longer obtain error-free ephemeris and time data needed for positioning.
Principles of Assisted Positioning
The above limitations of standard positioning methods can be overcome by using assisted positioning. In assisted positioning, a base station (the server) sends information to the user's receiver (the rover). Although this information may vary somewhat for different assisted systems, typical information is as follows:
1. The server can send a very accurate frequency reference to the rover, which is used to calibrate the reference oscillator in the rover receiver. The carrier frequency of the server-rover communication link is often used for this purpose. Once the frequency uncertainty of the rover's reference oscillator has been removed, the time required for the acquisition of the first satellite by the rover receiver is considerably reduced because the width of the search frequency window can be made much smaller.
2. In many cases the server can determine the approximate location of the rover relative to the server. For example, if the rover receiver is embedded in a cellular telephone (a common practice in an emergency location system), the location of the cellular tower that receives the strongest cell phone signal will serve this purpose. Knowledge of the approximate location of the rover, in conjunction with ephemeris data collected by the server, further narrows down the frequency uncertainty in searching for satellite signals. Additionally, if the server can determine the rover's approximate location to within approximately 100-200 km, the rover does not need to extract the highly accurate time information from the satellites' navigation data message (Step 10 above), which normally would be necessary in order to determine pseudorange.
3. Ephemeris and satellite clock correction data from each satellite can be collected by the server and transmitted to the rover. This is very advantageous, because the rover does not have to spend precious time (at least 30 seconds) to receive the data directly from the satellites. Because the server is located in clear view of the satellites, the satellite signals will be strong enough at that location to reliably demodulate the ephemeris data. The server can then easily transmit the data to the rover at a data rate much higher than the GPS 50 ps rate, and with a power high enough to penetrate into areas where the rover would otherwise not be able to receive the ephemeris data directly from the satellites.
4. In some assisted positioning systems, the server sends to the rover a copy of the actual navigation data bit stream received from the satellites. Knowledge of the bit pattern permits the rover to reliably strip the data modulation from the satellite signals it is receiving, thus permitting much longer coherent integration times in the process of measuring time of arrival of the satellite signals (Step 9 above). The resulting processing gain permits signals to be used for this purpose that would otherwise be too weak to be of any value.
5. The server can also transmit accurate timing information to the rover. Timing information from the server is essential if the rover cannot directly recover unambiguous time from the GPS navigation message due to signal blockage or attenuation.
The Role of Timing Information in Assisted Positioning
As previously discussed, in standard unassisted positioning accurate time must be directly recovered from the GPS signals for two purposes: to accurately determine times of signal transmission (Step 10 above) for the purpose of (1) measuring pseudoranges, and (2) to locate the position of each satellite at that time. For the purpose of determining pseudoranges, the time must be accurate to within tens of nanoseconds to prevent excessive ranging errors due to the speed of propagation of light. For the purpose of establishing the positions of the satellites, the time of transmission is inserted into the ephemeris equations received from the satellite. Here the required accuracy of time is less stringent. The satellites have a tangential orbital velocity of approximately 3800 m/sec, so for the purpose of determining satellite position, time must be accurate to a few milliseconds in order to keep satellite position errors within a few tens of meters.
However, in most assisted positioning systems accurate time must be obtained from a source other than the GPS signal itself, for two reasons. First, it is not desirable for the rover to spend precious time reading the time information from the received signal, and second, the signal may be too weak to permit this to occur. Therefore, in typical assisted positioning systems, a timing signal is sent from the server to the rover. Such a timing signal cannot be used to determine time of signal transmission from the satellite, since the time of signal transmission differs from absolute time at the server or the rover by an unknown amount (even if the timing signal could be used for this purpose it would be difficult or impossible for a communication link to provide it to the rover at the required accuracy of tens of nanoseconds).
Fortunately, it is possible for the rover to know an ambiguous form of signal transmission time from a GPS satellite without demodulating the navigation data message. This is possible because the epochs of the GPS C/A code are transmitted by each satellite precisely at each whole millisecond of satellite vehicle (SV) time, which differs from GPS time by an error term contained in the navigation message available at the server and transmitted to the rover (GPS time is a precise time to which all satellites are synchronized). The rover's receiver can identify the code epochs by correlating the received signal with a replica of the C/A code. This can be done reliably even with weak signals, because correlating over long periods of time can provide large amounts of processing gain. However, the transmission times of the epochs have a 1 millisecond ambiguity, i.e., it is only known that a specific epoch was transmitted at a SV time equal to an integer number of milliseconds, but the value of the integer is unknown. Thus, the pseudoranges to each satellite are subject to the same ambiguity, which in space is approximately 300 km. When these ambiguous times are used in the positioning equations, the solution of the equations results in a three-dimensional lattice, or grid, of possible rover positions with a spacing on the order of 300 km (the actual spacing will deviate from this value due to satellite-receiver geometry). However, if the rover's approximate position is known within approximately 100-200 km, the position ambiguity can be resolved. However, the 1-millisecond time ambiguity remains unresolved.
Thus, an unambiguous timing signal from the server is required only for the purpose of establishing the satellite positions at their transmission times, and therefore only needs to be accurate to within several milliseconds to keep the satellite position error acceptably small. Unfortunately, however, the communication link, such as a cell phone link typically available for this purpose, contains unknown and variable transmission delays occur due to packetizing and queuing of data from the server. These unpredictable delays often are much too large to be of use for determining satellite positions. On the other hand, it would desirable to use existing server-to-rover communication links, even if they are not originally designed for transmission of accurate timing signals. However, the modification of such a communication link (for example, a cellular telephone network) to provide a sufficiently accurate timing signal is undesirable because it can be far too costly and is generally not appealing to providers of such services. Therefore, an alternative solution to the problem is needed.